A configuration manager helps administrators manager large groups of computer systems. The configuration manager may provide remote control, patch management, software distribution, operating system deployment, network access protection and hardware and software inventory. This process provides consistency, simplifies desktop management, and reduces overall administrative costs, while providing the flexibility necessary to meet the diverse needs of the organization. For example, the Microsoft System Center Configuration Manager (SCCM) allows administrators to build customized installations of software, operating system images, and configurations that can be repeated across multiple desktop systems in an organization. However, when a new version of the configuration manager is released, the organization must rebuild the customized installations of software, operating system images, and configurations for the new version. For example, to migrate from SCCM 2007 version to SCCM 2012 version, all content (e.g., software packages) and related deployment objects (e.g., collections and advertisements) used in SCCM 2007 must be recreated in SCCM 2012. To accomplish this migration, traditional approaches include creating all content and related objects in SCCM 2012 or using a migration utility.
However, these approaches suffer from several problems. For instance, creating all content and related objects in SCCM 2012 requires extensive reprogramming and is not suitable for large SCCM installations (e.g., for large organizations). Similarly, using a migration utility is a manual process that cannot be automated, thus rendering it ineffective for large SCCM installations. Further, migration tools have built-in restrictions on what can be migrated. As a result, a migration tool can assist in the migration of only a small subset of content in a large and complex environment.
Thus, there exists a need for a custom migration tool for migrating application and packages configured for one version of a configuration manager to another version to solve several problems, including the following. A custom migration tool is required to perform automated pre-migration cleanup to dynamically reduce the content being migrated. For example, tens of thousands of packages in SCCM 2007 need to be dynamically filtered to include only the latest software into migration scope. The custom migration tool should also perform dynamic flattening of the content. That is, it must select only one instance of a package version for migration. For example, the custom migration tool should select only one instance of a SCCM 2007 package for migration from multiple copies of the same package that may have been created for each region (by duplication). During the process of flattening, the custom migration tool should be able to compare the multiple instances of the same package to determine if they are identical. If the instances are not identical, the custom migration tool must be able to select the correct instance for migration.
The custom migration tool may use a set of rules to determine whether or not a package may be migrated from one version to another. For example, the custom migration tool should determine if a SCCM 2007 package can be migrated as an SCCM 2012 Application or a legacy package. The set of rules and the logic using it should be flexible enough to handle complex packages. The custom migration tool may be able to modify non-standard able to modify non-standard commands to make them compatible with the updated version. The custom migration tool may also need to link the package identifiers of packages of the original version to the new version's application or packages to prevent re-running of already installed packages on existing computer systems upgraded to the new version. The custom migration tool may also be able to rerun the custom migration process on a predetermined schedule and migrate the remaining packages and objects to the new version. Further, the custom migration tool must be able to perform the above identified tasks in an automated manner (with minimal manual interaction). The custom migration tool may also be able to report its progress.